KVM devices are well known. An example KVM device is shown in published U.S. patent application number 2005/0246433 (“Carrigan et al.”). KVM devices are used, inter alia, for maintenance applications, and specifically, for maintaining large banks of servers. KVM devices are configured so as to permit one or more local maintenance computer to receive the video of remote servers, and to transmit the keyboard and mouse inputs of a local maintenance computer to a remote server to permit control of the remote server. Preferably, the KVM device is also switchable between remote servers. As a result, a person doing maintenance can sit at a local computer and do maintenance on many remote servers without having to physically move from one remote server to the other.
Sometimes, it is desired to use the local computer to load software or data onto one or more of the remote servers. One method of accomplishing this task, as described in Carrigan et al., is to make use of a storage medium to which both the remote server and local computer have access. The problem then becomes finding a way to arbitrate read and write access to the shared storage medium between the local computer and the remote server, and it will be appreciated by those skilled in the art that the problem of effectively arbitrating access to a shared storage medium is a general problem not limited to the KVM context.
In Carrigan et al., the issue was resolved by creating a virtual disk drive. When the local computer wants to load the software or data, it mounts the virtual disk to itself, making the virtual disk drive available to it and inaccessible to the remote server. Once the software or data is copied to the virtual disk drive, the local computer unmounts the virtual disk drive, making it available to be mounted to the local computer or remote server. When it is desired to have the remote server acquire the software or data from the virtual disk drive, the user, controlling the remote server via the local computer and KVM, causes the remote server to mount the virtual disk drive to the remote server. The virtual disk drive is then inaccessible to the local computer. Once the acquisition is complete, the user causes the remote server to unmount the virtual disk drive.
It will be appreciated that this system for arbitrating storage medium access presents certain problems. First, it is cumbersome, in that it requires either the server or computer to take the step of mounting the virtual disk drive prior to reading and writing. Second, mounting the drive to either of the computers renders it completely inaccessible to the other. Thus, the arbitration between the two computers is very coarse, presenting the user with only two options, which options exclude any genuine shared access to the shared storage medium.
It will also be appreciated that both the local computers and servers are often Windows™ computers. The Windows™ operating system is not designed to deal with situations in which the storage contents can be changed as the Windows™ operating system is reading the storage contents. Thus, methods of arbitrating access to shared storage must account for this characteristic of the Windows™ operating system.